前幾天都簡單帶大家了解什麼是Rest及Restful API 設計規範,那不免俗也要介紹現在流行的GraphQL
簡單來說,GraphQL(query language) 也是一種設計規範,並非是框架或語言,
Day7範例的FastAPI就是框架,Python是語言
| API | 說明 | Restful | 
|---|---|---|
| POST/icegraphql | 取得所有冰塊的價格資料 | GET/api/getIces | 
| POST/icegraphql | 取得冰塊編號111的個別資料 | GET/api/getIces/:IceId | 
GraphQL是透過讓CLient端能夠更直覺的去查詢或是修改所需要的數據,因此只要呼叫單個API /icegraphql,剩下要看需要什麼資料接著去query指定的資料,他通常都是用POST 以及傳入 Json Body
範例1. 取得所有冰塊的價格資料
# call /icegraphql
query {
   IceInfo {
       IceID
       IcePrice
   }
}
# call /icegraphql
query {
   IceInfo (IceID: "111"){
       IceID
       IcePrice
   }
}
GraphQL’s power comes from a simple idea — instead of defining the structure of responses on the server, the flexibility is given to the client.
Petr Bela
圖片中,就可以更明確的看出兩種設計方案的差異!
圖片來源
直接來個業界應用範例,讓大家瞧瞧看
rakuten 樂天市場
 
 
 
line購物
參考資料